
SRC=$(wildcard *.c)
#SRC:.c=.o 是提前列出将得到的.o后缀的文件，实际上并不会先执行.c文件编译为.o文件的操作
#负责定义 “需要生成哪些 .o 文件”（文本层面的列表生成）
OBJ=$(SRC:.c=.o)
BIN=progress

$(BIN):$(OBJ)
	gcc $^ -o $@

#这里才是.c文件编译为.o文件的具体实现
%.o:%.c
	gcc -c $<

.PHONY:clean
clean:
	rm -f $(OBJ) $(BIN)
